Swift String和NSDate的相互转化

####1.String 转化成 NSDate :
通常我在提交数据的时候时间格式都是14位,例如:”20161224191234”, 为了开发方便,需要把字符串转化成 NSDate
let dateString = “20161224191234”

let formatter = NSDateFormatter()
formatter.dateFormat = “yyyyMMddHHmmss”
formatter.dateFromString(dateString)

这里的 dateFormat 格式要跟你自己的日期字符串格式一样, HH 为24小时制须大写,如不大写,上面转换出来结果为 nil.

####2.NSDate 转化成 String

var normalTime:String{
let formatter = NSDateFormatter()
formatter.dateFormat = “yyyy-MM-dd HH:mm:ss”
return formatter.stringFromDate(NSDate())
}
这样结果就是2016-12-24 19:12:34的格式,格式由自己需求来定

####3.由日期判断是星期几
        扩展 NSDate,写一个方法
        extension NSDate{


            func resultWeek()->Int{
                 let interval = self.timeIntervalSince1970
                         let day = Int(interval/86400)
                                return (day-3)%7
                                     }
                                     }
                                     上面的"20161224191234"判断一下是周几
                                     let weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
                                     let week = weeks[formatter.dateFromString(dateString)!.resultWeek()] 结果是星期六

                                     ####4.判断两个日期时间差

                                     let firstDate = "2016-09-24"
                                     let secondDate = "2016-12-24"
                                     let cformatter = NSDateFormatter()
                                     cformatter.dateFormat = "yyyy-MM-dd"
                                     let sDate = cformatter.dateFromString(firstDate)
                                     let cDate = cformatter.dateFromString(secondDate)
                                     let intervals = cDate?.timeIntervalSinceDate(sDate!) //时间差(单位是秒)
                                     let day_seconds = 24*3600 //一天的秒数
                                     let days = Int(intervals!)/day_seconds //结果就是两个日期的时间差(单位是天)